iT邦幫忙

2

Python 進階爬蟲工具 -Selenium : 安裝和使用ChromeDriver

  • 分享至 

  • xImage
  •  

安裝和使用 ChromeDriver 的步驟

檢查是否已安裝:pip show selenium
1.安裝 Selenium
pip install selenium

2.下載 ChromeDriver

  • 前往 ChromeDriver 官方網站。
  • 下載與你 Chrome 瀏覽器版本匹配的 ChromeDriver。

如何確認 ChromeDriver 版本是否與 Chrome 瀏覽器匹配

確保 ChromeDriver 版本與 Chrome 瀏覽器版本相匹配,是進行網頁自動化測試的重要一環。若版本不一致,可能會導致腳本執行失敗或產生不可預期的結果
檢查 Chrome 版本
開啟 Chrome 瀏覽器。
在網址列輸入 chrome://settings/help,並按下 Enter。
在「關於 Google Chrome」頁面中,你會看到詳細的 Chrome 版本資訊。
檢查 ChromeDriver 版本

  • 開啟終端機或命令提示字元。
  • 導航到 ChromeDriver 所在的目錄。這個目錄通常是你在下載 ChromeDriver 時自行指定的。
  • 執行以下命令:
chromedriver --version

or

from selenium import webdriver
# 創建 WebDriver 實例(這裡以 Chrome 為例)
driver = webdriver.Chrome()

# 檢查 WebDriver 版本
print(f'webdriver __version__:{webdriver.__version__}')

# 關閉 WebDriver
driver.quit()

執行後應該可以看到輸出的版本:webdriver version:4.24.0

比對版本
將 Chrome 版本與 ChromeDriver 版本進行比對。一般來說,ChromeDriver 的版本號應該與 Chrome 的主版本號一致或略高。例如,Chrome 版本為 118,ChromeDriver 版本可以是 118 或更高。

3.將 ChromeDriver 添加到系統 PATH
確保 ChromeDriver 可被系統識別,或者在代碼中指定 ChromeDriver 的絕對路徑:

driver = webdriver.Chrome(executable_path="/path/to/chromedriver")
from selenium import webdriver

# 創建 Chrome 瀏覽器的 WebDriver 實例
driver = webdriver.Chrome()  

# 導航到指定的網址
driver.get("https://example.com")

# 獲取目前頁面的 HTML 內容(渲染後的源碼)
print(driver.page_source)  

# 關閉瀏覽器
driver.quit()
  1. webdriver.Chrome()
  • 啟動 Google Chrome 瀏覽器。
    2.driver.get("https://www.google.com.tw/webhp?hl=zh-TW&cr=countryTW")
  • 讓瀏覽器打開 google
    3.driver.page_source
  • 獲取加載和渲染後的完整 HTML 源碼,這對於動態網頁(需要 JavaScript 渲染的頁面)非常有用。
  1. driver.quit():關閉瀏覽器並釋放資源,防止內存泄漏。

使用 Selenium 自動化搜尋並擷取 Google 搜尋結果的 Python 範例
進階爬蟲工具 Python-Selenium : sys 模組的主要功能
進階爬蟲工具 Python-Selenium : 定位

from time import sleep

是 Python 中用來導入標準庫模組 time 裡的 sleep 函數。以下是詳細的解釋:
time 模組
time 是 Python 標準庫的一部分,提供與時間相關的多種功能,例如當前時間、計時、延遲執行等。

sleep 函數

  • 用於使程序暫停執行指定的秒數。
  • 接受一個參數(秒數),可以是整數或浮點數,用來指定程序的暫停時間。
    語法
    time.sleep(seconds)
    seconds: 暫停的時間,以秒為單位,可以是整數(例如 5 秒)或浮點數(例如 0.5 秒)。
    用法示例
  1. 基本示例:延遲 5 秒
from time import sleep

print("開始")
sleep(5)  # 暫停 5 秒
print("結束")

輸出:

開始
(5 秒後)
結束
  1. 使用浮點數延遲
from time import sleep

print("倒數開始:")
for i in range(3, 0, -1):
    print(i)
    sleep(0.5)  # 暫停 0.5 秒
print("時間到!")

輸出:

倒數開始:
3
2
1
時間到!

sleep常見應用場景

  1. 模擬程序運行的延遲: 用於控制程序的執行速度,模擬更真實的運行環境。
for i in range(5):
    print(f"正在處理第 {i+1} 個任務...")
    sleep(2)  # 每個任務間隔 2 秒
  1. 避免爬蟲被封鎖: 爬蟲程序中可以插入 sleep,模擬人工操作,降低請求頻率。
import requests
from time import sleep

urls = ["https://example.com/page1", "https://example.com/page2"]
for url in urls:
    response = requests.get(url)
    print(f"訪問 {url} 的結果: {response.status_code}")
    sleep(2)  # 每次請求後暫停 2 秒
  1. 處理多線程或多進程中的同步問題: 用於等待某個操作完成後繼續執行。

  2. 創建動畫效果: 可以與控制台輸出結合,製作簡單的動畫。

import sys
from time import sleep

for i in range(5):
    sys.stdout.write(".")
    sys.stdout.flush()
    sleep(0.5)

sys 是 Python 的一個內建模組,提供了一些與 Python 直譯器和系統相關的功能和變量。
使用 Selenium 自動化搜尋並擷取 Google 搜尋結果的 Python 範例
Python 進階爬蟲工具-Selenium : sys 模組的主要功能
Python 進階爬蟲工具-Selenium : 定位


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言